﻿using Asteroids.Entities.Components;

namespace Asteroids.Entities
{
    public abstract class EntityTemplate
    { 
        private static NullEntityTemplate _nullTemplate = new NullEntityTemplate();
        public abstract void PopulateEntity(Entity e);
        public static EntityTemplate Default { get { return _nullTemplate; } }
    }

    public sealed class NullEntityTemplate : EntityTemplate
    {
        public override void PopulateEntity(Entity e)
        { e.Clear(); }
    }
}
